]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/private: Multiply position in fb coordinates with resource scale
authorJonas Dreßler <verdre@v0yd.nl>
Sun, 26 Jul 2020 11:26:20 +0000 (13:26 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Mon, 3 Aug 2020 21:57:50 +0000 (21:57 +0000)
The framebuffer we use for rendering shadows is scaled by the resource
scale, that means we also need to offset coordinates when translating
them to the framebuffers coordinate system.

So far we forgot to do that when translating the framebuffer using the
position of the actor, which lead to small rendering bugs of
text-shadows for actors allocated at non-zero origins. To fix that,
simply multiply those positions with the actors resource scale.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1390

src/st/st-private.c

index a491c19535c0f3a7bb22457adb9d688068f8045a..129c87f51eb8a85495b9d6d35c87cc6ba6377864 100644 (file)
@@ -508,6 +508,8 @@ _st_create_shadow_pipeline_from_actor (StShadow     *shadow_spec,
 
       cogl_color_init_from_4ub (&clear_color, 0, 0, 0, 0);
       clutter_actor_get_position (actor, &x, &y);
+      x *= resource_scale;
+      y *= resource_scale;
 
       cogl_framebuffer_clear (fb, COGL_BUFFER_BIT_COLOR, &clear_color);
       cogl_framebuffer_translate (fb, -x, -y, 0);